﻿#pragma once

#include <ikit.h>
#include "unit_test.h"
#include <d3d12.h>
#include <dxgi.h>
#include <wrl/client.h>
#include <Unknwn.h>

namespace ifire {

class DirectXTest : public UnitTest {

public:
  DirectXTest() = default;
  ~DirectXTest() = default;

  void RunTest();
  void PrintGeneralVectorFunction();
  void VectorCalculate();
  void MatrixCalculate();
  bool CheckSSE2();
  // 检查设备支持
  void CheckFeatureSupport();
  // 枚举显示适配器
  void LogAdapters();
  // 枚举显示适配器相关联的输出设备
  void LogAdapterOutputs(IDXGIAdapter* adapter);
  // 显示模式
  void LogOutputDisplayModes(IDXGIOutput* output, DXGI_FORMAT format);
  // 测试初始化DirectX
  void DirectXInitialization();
};

} // namespace ifire